package cn.hsp.demo

import android.annotation.SuppressLint
import android.content.Context
import android.hardware.camera2.CameraAccessException
import android.hardware.camera2.CameraManager

/**
 * 厦门大学计算机专业 | 前华为工程师
 * 专注《零基础学编程系列》https://cxyxy.blog.csdn.net/article/details/121134634
 * 包含：Java | 安卓 | 前端 | Flutter | iOS | 小程序 | 鸿蒙
 * 公众号：花生皮编程
 */
@SuppressLint("StaticFieldLeak")
object TorchUtils {
    private lateinit var manager: CameraManager
    private lateinit var mContext: Context
    private var status = false //记录手电筒状态
    fun init(context: Context) {
        mContext = context
        manager = mContext.getSystemService(Context.CAMERA_SERVICE) as CameraManager
    }

    //打开手电筒
    fun open() {
        if (status) { //如果已经是打开状态，不需要打开
            return
        }
        try {
            manager.setTorchMode("0", true)
        } catch (e: Exception) {
            e.printStackTrace()
        }

        status = true //记录手电筒状态为打开
    }

    //关闭手电筒
    fun close() {
        if (!status) { //如果已经是关闭状态，不需要打开
            return
        }
        try {
            manager.setTorchMode("0", false)
        } catch (e: CameraAccessException) {
            e.printStackTrace()
        }

        status = false //记录手电筒状态为关闭
    }
}